function shuffle( a )
{
    var b = a.length, d, c;
    for (var i = 0; i < b; ++i )
    {
        if ( ( typeof a[i] ) == 'object' )
        {
            a[i] = shuffle( a[i] );
        }
        c = Math.floor( Math.random() * b );
        d = a[--b];
        a[b] = a[c];
        a[c] = d
    }
    return a;
}

function getXmlHttp()
{
    var xmlHttp;
    try
    {
        xmlHttp = new ActiveXObject( "Msxml2.XMLHTTP" );
    }
    catch ( e )
    {
        try
        {
            xmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" );
        }
        catch ( E )
        {
            xmlHttp = false;
        }
    }
    if ( !xmlHttp && ( typeof XMLHttpRequest != 'undefined' ) )
    {
        xmlHttp = new XMLHttpRequest();
    }
    return xmlHttp;
}